Pixel based gobo record control format

ABSTRACT

Techniques for use in a digital mirror device based luminaire. The techniques include using a filter as a gobo for definition.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a divisional of U.S. application Ser. No.09/679,727, filed Oct. 4, 2000, which is a continuation of U.S.application Ser. No. 09/495,585 filed Feb. 1, 2000, which claims thebenefit of U.S. provisional application serial No. 60/118,195, filed onFeb. 1, 1999.

FIELD

[0002] The present invention relates to a system of controlling lightbeam pattern (“gobo”) shape in a pixilated gobo control system.

BACKGROUND

[0003] Commonly assigned patent application Ser. No. 08/854,353,describes a stage lighting system which operates based oncomputer-provided commands to form special effects. One of those effectsis control of the shape of a light pattern that is transmitted by thedevice. This control is carried out on a pixel-by-pixel basis, hencereferred to in this specification as pixilated. The embodiment describesusing a digital mirror device, but other x-y controllable devices suchas a grating light valve, are also contemplated.

[0004] The computer controlled system includes a digital signalprocessor 106 which is used to create an image command. That imagecommand controls the pixels of the x-y controllable device to shape thelight that it is output from the device.

[0005] The system described in the above-referenced application allowsunparalleled flexibility in selection of gobo shapes and movement. Thisopens an entirely new science of controlling gobos. The presentinventors found that, unexpectedly, even more flexibility is obtained bya special control language for controlling those movements.

SUMMARY

[0006] The present disclosure defines aspects that facilitatecommunicating with an a point controllable device to form specialelectronic light pattern shapes. More specifically, the presentapplication describes different aspects of communication with anelectronic gobo. These aspects include improved processing or improvedcontrols for the gobo.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] These and other aspects of the invention will now be describedwith reference to the attached drawings, in which:

[0008]FIG. 1 shows a block diagram of the basic system operating theembodiment;

[0009]FIG. 2 shows a basic flowchart of operation;

[0010]FIG. 3 shows a flowchart of forming a replicating circles typegobo;

[0011]FIGS. 4A through 4G show respective interim results of carryingout the replicating circles operation;

[0012]FIG. 5 shows the result of two overlapping gobos rotating inopposite directions; and

[0013] FIGS. 6(1) through 6(8) show a z-axis flipping gobo.

[0014] FIGS. 7A-7C shows overlapping gobos and then color of overlap;

[0015]FIG. 8 shows the black diagram of the system including a transfercontroller;

[0016]FIG. 9 shows an intensity-sensitive color control elements;

[0017]FIG. 10 shows control of a framing shutter;

[0018]FIG. 11 shows a transfer controller made from an FPGA;

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0019]FIG. 1 shows a block diagram of the hardware used according to thepreferred embodiment. As described above, this system uses a digitalmirror device 100, which has also been called a digital mirror device(“DMD”) and a digital light processor device (“DLP”). More generally,any system which allows controlling shape of light on a pixel basis,including a grating light valve, could be used as the light shaper. Thislight shaper forms the shape of light which is transmitted. FIG. 1 showsthe light being transmitted as 102, and shows the transmitted light. Theinformation for the digital mirror 100 is calculated by a digital signalprocessor 106. Information is calculated based on local informationstored in the lamp, e.g., in ROM 109, and also in information which isreceived from the console 104 over the communication link.

[0020] The operation is commanded according to a format.

[0021] The preferred data format provides 4 bytes for each of color andgobo control information.

[0022] The most significant byte of gobo control data, (“dfGobo”)indicates the gobo type. Many different gobo types are possible. Once atype is defined, the gobo formed from that type is represented by anumber. That type can be edited using a special gobo editor describedherein. The gobo editor allows the information to be modified in newways, and forms new kinds of images and effects.

[0023] The images which are used to form the gobos may have variableand/or moving parts. The operator can control certain aspects of theseparts from the console via the gobo control information. The type ofgobo controls the gobo editor to allow certain parameters to be edited.

[0024] The examples given below are only exemplary of the types of goboshapes that can be controlled, and the controls that are possible whenusing those gobo shapes. Of course, other controls of other shapes arepossible and predictable based on this disclosure.

First Embodiment

[0025] A first embodiment is the control of an annulus, or “ring” gobo.The DMD 100 in FIG. 1 is shown with the ring gobo being formed on theDMD. The ring gobo is type 000A. When the gobo type 0A is enabled, thegobo editor 110 on the console 104 is enabled and the existing goboencoders 120, 122, 124, and 126 are used. The gobo editor 110 providesthe operator with specialized control over the internal and the externaldiameters of the annulus, using separate controls in the gobo editor.

[0026] The gobo editor and control system also provides othercapabilities, including the capability of timed moves between differentedited parameters. For example, the ring forming the gobo could becontrolled to be thicker. The operation could then effect a timed movebetween these “preset” ring thicknesses. Control like this cannot evenbe attempted with conventional fixtures.

[0027] Another embodiment is a composite gobo with moving parts. Theseparts can move though any path that ia programmed in the gobo dataitself. This is done in response to the variant fields in the gobocontrol record, again with timing. Multiple parts can be linked to asingle control allowing almost unlimited effects.

[0028] Another embodiment of this system adapts the effect for an “eye”gobo, where the pupil of the eye changes its position (look left, lookright) in response to the control.

[0029] Yet another example is a Polygon record which can be used forforming a triangle or some other polygonal shape.

[0030] The control can be likened to the slider control under aQuickTime movie window, which allows you to manually move to any pointin the movie. However, our controls need not be restricted to timelines.

[0031] Even though such moving parts are used, scaling and rotation onthe gobo is also possible.

[0032] The following type assignments are contemplated:

[0033] 00_(—)0F=FixedGobo (with no “moving parts”)

[0034] 10_F=SingleCntrl (with 1 “moving part”)

[0035] 20_(—)2F DoubleCntrl (with 2 “moving parts”)

[0036] 30_FF=undefined, reserved.

[0037] The remaining control record bytes for each type are defined asfollows: total Byte dfGobo2 dfGobo3 dfGobo4 #gobos/type, memoryFixedGobo: ID[23:16] ID[15:8] ID[7:0] 16 M/type 256 M SingleCntrl:ID[15:8] ID[7:0] control#1 64k/type 1 M DoubleCntrl: ID[7:0] control#2control#1 256/type 4k

[0038] As can be seen from this example, this use of the control recordto carry control values does restrict the number of gobos which can bedefined of that type, especially for the 2_control type.

[0039] Console Support:

[0040] The use of variant part gobos requires no modifications toexisting co translate directly to the values of the 4 bytes sent in thecommunications data packet as follows: Byte: dfGobo dfGobo2 dfGobo3dfGobo4 Enc: TopRight MidRight BotRight BotLeft FixedGobo: ID[23:16]ID[15:8] ID[7:0] SingleCntrl: ID[15:8] ID[7 0] control#1 DoubleCntrl:ID[7:0] control#2 control#1

[0041] These values would be part of a preset gobo, which could becopied as the starting point.

[0042] Once these values are set, the third and fourth channelsautomatically become the inner/outer radius controls. Using two radiiallows the annulus to be turned “inside out”.

[0043] Each control channel's data always has the same meaning withinthe console. The console treats these values as simply numbers that arepassed on. The meanings of those numbers, as interpreted by the lampschange according to the value in dfGobo.

[0044] The lamp will always receives all 4 bytes of the gobo data in thesame packet. Therefore, a “DoubleCntrl” gobo will always have thecorrect control values packed along with it.

[0045] Hence, the console needs no real modification. If a “soft”console_ is used, then name reassignments and/or key reassignments maybe desirable.

[0046] Timing:

[0047] For each data packet, there is an associated “Time” for goboresponse. This is conventionally taken as the time allotted to place thenew gobo in the light gate. This delay has been caused by motor timing.In this system, variant gobo, the control is more dynamically used. Ifthe non-variant parts of the gobo remain the same, then it is still thesame gobo, only with control changes. Then, the time value isinterpreted as the time allowed for the control change.

[0048] Since different gobo presets (in the console) can reference thesame gobo, but with different control settings, this allows easilyprogrammed timed moves between different annuli, etc.

[0049] Internal Workings:

[0050] When the gobo command data is extracted from the packet at thelamp, the dfGobo byte is inspected first, to see if either dfGobo3 ordfGobo4 are significant in selecting the image. In the case of the“Cntrl” variants, one or both of these bytes is masked out, and theresulting 32-bit number is used to search for a matching gobo image (byGobo _(—)1D) in the library stored in the lamp's ROM 109.

[0051] If a matching image is found, and the image is not already inuse, then the following steps are taken:

[0052] 1 ) The image data is copied into RAM, so that its fields may bemodified by the control values. This step will be skipped if the imageis currently active.

[0053] 2) The initial control values are then recovered from the datapacket, and used to modify certain fields of the image data, accordingto the control records.

[0054] 3) The image is drawn on the display device, using thenewly-modified fields in the image data.

[0055] If the image is already in use, then the RAM copy is not altered.Instead, a time-sliced task is set up to slew from the existing controlvalues to those in the new data packet, in a time determined by the newdata packet.

[0056] At each vertical retrace of the display, new control values arecomputed, and steps 2 (using the new control values) and 3 above arerepeated, so that the image appears modified with time.

[0057] The Image Data Records:

[0058] All images stored in the lamp are in a variant record format:Header: Length 32 bits, offset to next gobo in list. Gobo _1D 32 bits,serial number of gobo. Gobo records: Length 32 bits, offset to nextrecord. Opcode 16 bits, type of object to be drawn. Data Variant part -data describing object. _Length 32 bits, offset to next record. Opcode16 bits, type of object to be drawn. Data Variant part - data describingobject.

[0059] Gobos with controls are exactly the same, except that theycontain control records, which describe how the control values are toaffect the gobo data. Each control record contains the usual length andOpcode fields, and a field containing the control number (1 or 2).

[0060] These are followed by a list of “field modification” records.Each record contains information about the offset (from the start of thegobo data) of the field, the size (8, 16 or 32 bits) of the field, andhow its value depends on the control value. Length 32 bits, offset tonext record Opcode 16 bits = control_record (constant) CntrlNum 16 bits= 1 or 2 (control number) /* field modification record #1 */ Address 16bits, offset from start of gobo to affected field. Flags 16 bits,information about field (size, signed, etc) Scale 16 bits, scale factorapplied to control before use zPoint 16 bits, added to control valueafter scaling. /* field modification record #2 */ Address 16 bits,offset from start of gobo to affected field. Flags 16 bits, informationabout field (size, signed, etc) Scale 16 bits, scale factor applied tocontrol before use zPoint 16 bits, added to control value after scaling.

[0061] As can be seen, a single control can have almost unlimitedeffects on the gobo, since ANY values in the data can be modified in anyway, and the number of field modification records is almost unlimited.

[0062] Note that since the control records are part of the gobo dataitself, they can have intimate knowledge of the gobo structure. Thismakes the hard-coding of field offsets acceptable.

[0063] In cases where the power offered by this simple structure is notsufficient, a control record could be defined which contains code to beexecuted by the processor. This code would be passed parameters, such asthe address of the gobo data, and the value of the control beingadjusted.

[0064] Example Records.

[0065] The Annulus record has the following format: Length 32 bitsOpcode 16 bits, = type_annulus Pad 16 bits, unused Centre_x 16 bits, xcoordinate of centre Centre_y 16 bits, y coordinate of centre OuterRad16 bits, outside radius (the radii get swapped when drawn if theirvalues are in the wrong order) InnerRad 16 bits, inside radius

[0066] It can be seen from this that it is easy to “target” one of theradius parameters from a control record. Use of two control records,each with one of the radii as a target, would provide full control averthe annulus shape.

[0067] Note that if the center point coordinates are modified, theannulus will move around the display area, independent of any otherdrawing elements in the same gobo's data.

[0068] The Polygon record for a triangle has this format: Length 32 bitsOpcode 16 bits, = type_polygon Pad 16 bits, vertex count = 3 Centre_x 16bits, x coordinate of vertex Centre_y 16 bits, y coordinate of vertexCentre_x 16 bits, x coordinate of vertex Centre_y 16 bits, y coordinateof vertex Centre_x 16 bits, x coordinate of vertex Centre_y 16 bits, ycoordinate of vertex

[0069] It is easy to modify any of the vertex coordinates, producingdistortion of the triangle.

[0070] The gobo data can contain commands to modify the drawingenvironment, by rotation, scaling, offset, and color control, the powerof the control records is limitless.

Second Embodiment

[0071] This second embodiment provides further detail aboutimplementation once the gobo information is received.

[0072] Gobo information is, at times, being continuously calculated byDSP 106. The flowchart of FIG. 2 shows the handling operation that iscarried out when new gobo information is received.

[0073] At step 200, the system receives new gobo information. In thepreferred embodiment, this is done by using a communications device 111in the lamp 99. The communications device is a mailbox which indicateswhen new mail is received. Hence, the new gobo information is receivedat step 200 by determining that new mail has been received.

[0074] At step 202, the system copies the old gobo and switchespointers. The operation continues using the old gobo until the drawroutine is called later on.

[0075] At step 204, the new information is used to form a new gobo. Thesystem uses a defined gobo (“dfGobo”) as discussed previously which hasa defined matrix. The type dfGobo is used to read the contents from thememory 109 and thereby form a default image. That default image isformed in a matrix. For example, in the case of an annulus, a defaultsize annulus can be formed at position 0,0 in the matrix. An example offorming filled balls is provided herein.

[0076] Step 206 represents calls to subroutines. The default gobo is inthe matrix, but the power of this system is its ability to very easilychange the characteristics of that default gobo. In this embodiment, thecharacteristics are changed by changing the characteristics of thematrix and hence, shifting that default gobo in different ways. Thematrix operations, which are described in further detail herein, includescaling the gobo, rotation, iris, edge, strobe, and dimmer. Other matrixoperations are possible. Each of these matrix operations takes thedefault gobo, and does something to it.

[0077] For example, scale changes the size of the default gobo. Rotationrotates the default gobo by a certain amount.

[0078] Iris simulates an iris operation by choosing an area of interest,typically circular, and erasing everything outside that area ofinterest. This is very easily done in the matrix, since it simplydefines a portion in the matrix where all black is written.

[0079] Edge effects carry out certain effects on the edge such assoftening the edge. This determines a predetermined thickness, which istranslated to a predetermined number of pixels, and carries out apredetermined operation on the number of pixels. For example, for a 50%edge softening, every other pixel can be turned off. The strobe is ineffect that allows all pixels to be turned on and off at a predeterminedfrequency, i.e., 3 to 10 times a second. The dimmer allows the image tobe made dimmer by turning off some of the pixels at predetermined times.

[0080] The replicate command forms another default gobo, to allow twodifferent gobos to be handled by the same record. This will be shownwith reference to the exemplary third embodiment showing balls. Each ofthose gobos are then handled as the same unit and the entirety of thegobos can be, for example, rotated. The result of step 206 and all ofthese subroutines that are called is that the matrix includesinformation about the bits to be mapped to the digital mirror 100.

[0081] At step 208, the system then obtains the color of the gobos fromthe control record discussed previously. This gobo color is used to setthe appropriate color changing circuitry 113 and 115 in the lamp 99.Note that the color changing circuitry is shown both before and afterthe digital mirror 100. It should be understood that either of thosecolor changing circuits could be used by itself.

[0082] At step 210, the system calls the draw routine in which thematrix is mapped to the digital mirror. This is done in different waysdepending on the number of images being used. Step 212 shows the drawroutine for a single image being used as the gobo. In that case, the oldgobo, now copied as shown in step 202, is faded out while the new gobonewly calculated is faded in. Pointers are again changed so that thesystem points to the new gobo. Hence, this has the effect ofautomatically fading out the old gobo and fading in the new gobo.

[0083] Step 214 schematically shows the draw routine for a system withmultiple images for an iris. In that system, one of the gobos is givenpriority over the other. If one is brighter than the other, then thatone is automatically given priority. The one with priority 2, the lowerpriority 1, is written first. Then the higher priority gobo is written.Finally, the iris is written which is essentially drawing black aroundthe edges of the screen defined by the iris. Note that unlike aconventional iris, this iris can take on many different shapes. The iriscan take on not just a circular shape, but also an elliptical shape, arectangular shape, or a polygonal shape. In addition, the iris canrotate when it is non-circular so that for the example of a square iris,the edges of the square can actually rotate.

[0084] Returning to step 206, in the case of a replicate, there aremultiple gobos in the matrix. This allows the option of spinning theentire matrix, shown as thin matrix.

[0085] An example will now be described with reference to the case ofrepeating circles. At step 200, the new gobo information is receivedindicating a circle. This is followed by the other steps of 202 wherethe old gobo is copied, and 204 where the new gobo is formed. Thespecific operation forms a new gobo at step 300 by creating a circle ofsize diameter equals 1000 pixels at origin 00. This default circle isautomatically created. FIG. 4A shows the default gobo which is created,a default size circle at 00. It is assumed for purposes of thisoperation that all of the circles will be the same size.

[0086] At step 302, the circle is scaled by multiplying the entirecircle by an appropriate scaling factor. Here, for simplicity, we areassuming a scaling factor of 50% to create a smaller circle. The resultis shown in FIG. 4B. A gobo half the size of the gobo of FIG. 4A isstill at the origin. This is actually the scale of the subroutine asshown in the right portion of step 302. Next, since there will be fourrepeated gobos in this example, a four-loop is formed to form each ofthe gobos at step 304. Each of the gobos is shifted in position bycalling the matrix operator shift. In this example, the gobo is shiftedto a quadrant to the upper right of the origin. This position isreferred to as □ over 4 in the FIG. 3 flowchart and results in the gobobeing shifted to the center portion of the top right quadrant as shownin FIG. 4C. This is again easily accomplished within the matrix bymoving the appropriate values. At step 308, the matrix is spun by 90degrees in order to put the gobo in the next quadrant as shown in FIG.4D in preparation for the new gobo being formed into the same quadrant.Now the system is ready for the next gobo, thereby calling the replicatecommand which quite easily creates another default gobo circle andscales it. The four-loop is then continued at step 312.

[0087] The replicate process is shown in FIG. 4E where a new gobo 402 isformed in addition to the existing gobo 400. The system then passesagain through the four-loop, with the results being shown in thefollowing figures. In FIG. 4F, the new gobo 402 is again moved to theupper right quadrant (step 306). In FIG. 4G, the matrix is again rotatedto leave room for a new gobo in the upper right quadrant. This continuesuntil the end of the four-loop. Hence, this allows each of the gobos tobe formed.

[0088] Since all of this is done in matrix operation, it is easilyprogrammable into the digital signal processor. While the above hasgiven the example of a circle, it should be understood that this scalingand moving operation can be carried out for anything. The polygons,circles, annulus, and any other shape is easily scaled.

[0089] The same operation can be carried out with the multiple parametergobos. For example, for the case of a ring, the variable takes the formannulus (inner R, outer R, x and y). This defines the annulus and turnsof the inner radius, the outer radius, and x and y offsets from theorigin. Again, as shown in step 3, the annulus is first written into thematrix as a default size, and then appropriately scaled and shifted. Interms of the previously described control, the ring gobo has twocontrols: control 1 and control 2 defined the inner and outer radius.

[0090] Each of these operations is also automatically carried out by thecommand repeat count which allows easily forming the multiple positiongobo of FIGS. 4A-4G. The variable auto spin defines a continuous spinoperation. The spin operation commands the digital signal processor tocontinuously spin the entire matrix by a certain amount each time.

[0091] One particularly interesting feature available from the digitalmirror device is the ability to use multiple gobos which can operatetotally separately from one another raises the ability to have differentgobos spinning in different directions. When the gobos overlap, theprocessor can also calculate relative brightness of the two gobos. Inaddition, one gobo can be brighter than the other. This raises thepossibility of a system such as shown in FIG. 5A-5C. Two gobos are shownspinning in opposite directions: the circle gobo 500 is spinning thecounterclockwise direction, while the half moon gobo 502 is spinning inthe clockwise direction. At the overlap, the half moon gobo which isbrighter than the circle gobo, is visible over the circle gobo. Sucheffects were simply not possible with previous systems. Any matrixoperation is possible, and only a few of those matrix operations havebeen described herein.

[0092] A final matrix operation to be described is the perspectivetransformation. This defines rotation of the gobo in the Z axis andhence allows adding depth and perspective to the gobo. For each gobo forwhich rotation is desired, a calculation is preferably made in advanceas to what the gobo will look like during the Z axis transformation. Forexample, when the gobo is flipping in the Z axis, the top goes back andlooks smaller while the front comes forward and looks larger FIGS.6(1)-6(8) show the varying stages of the gobo flipping. In FIG. 6(x),the gobo has its edge toward the user. This is shown in FIG. 6(x) as avery thin line, e.g., three pixels wide, although the gobo could be zerothickness at this point. Automatic algorithms are available for such Zaxis transformation, or alternatively a specific Z axis transformationcan be drawn and digitized automatically to enable a custom look.

Third Embodiment

[0093] The gobo record format described above can have two gobostherein. These two gobos can be gobo planes, which can be used toproject one image superimposed over another image in a predefined way.For example, a first image can be a pattern that emits light, e.g., astandard gobo. The second image can be totally transparent, or can haveholes through which the first image can be seen.

[0094] Analog gobos often project light through two gobos. The light isthen projected through the intersection between the two gobos.Effectively, this takes an AND function between the gobos. Light willonly be passed in places where both gobos are open.

[0095] In the present system, any function between two images can beprojected as an overall gobo shape. The system can, e.g., project an“or” operation between the two images. Moreover, the two images can beprojected in separate colors. The operation could be carried out insoftware.

[0096] A first gobo shown in FIG. 7A is a square gobo. For purposes ofthis example, the square gobo is projected in red (“R”), forming a firstred lighted portion. The exterior non-projected portion 702 is black.

[0097]FIG. 7B shows the second gobo to be combined with the first gobo.The second gobo is an off-center circle 704 to be projected in blue(“B”). The AND between these two gobos would transmit only theintersection between the two gobos, shown by the hatched portion 706.Moreover, this portion could only be transmitted in the additive orsubtractive combination between the two colors, red and blue.

[0098] The present system defines the two images as conceptually beingseparate planes. This enables transmitting the “or”, or any othercombination, between the two images. Both the first image 700 and thesecond image 704 are displayed. Moreover, the intersection portion ofthe image 706 can be made in any desired color, either the color ofeither, the color of the subtractive combination, or a totally differentcolor. While this system describes an “or” operation, it alsoencompasses any combination between the gobos: e.g., exclusive or,Schmitt-triggered (hysteresis-induced combination) AND/OR, or others.

[0099] The gobo operation is also simplified and made more efficient byusing a transfer controller as described herein.

[0100]FIG. 8 shows the basic block diagram of this embodiment. TheDigital Signal Processor (DSP) 800 effectively functions as the centralprocessing unit. A DSP for this embodiment is the TI TMS 320C80. Thishas a 64-bit bus 802. Memory 804 is attached to the bus 802. The memory804 effectively forms a working portion. A transfer controller 810 isprovided and allows increased speed. The transfer controller can takecontrol of the bus and can carry out certain functions. One suchfunction is a direct memory access. This allows moving information fromthe program memory 804 to a desired location.

[0101] The transfer controller receives information about the data to bemoved, including the start location of the data, the number of bytes ofthe data, and the end location of the data. The destination andoperation is also specified by the data 809. The transfer controller 810then takes the data directly from the memory 804, processes it, andreturns it to the memory or to the DLP without DSP intervention. The CPUcan then therefore instruct the transfer controller to take some actionand then can itself do something else.

[0102] Hardware block 820 also connects to the bus 802. This ispreferably formed from a Field Programmable Gate Array (FPGA). The FPGAcan be configured into logical blocks as shown. The DSP also sendscommands that reconfigure the FPGA as needed. The FPGA can bereconfigured to form fast Synchronous Dynamic Random Access Memory(SDRAM) shown as 822.

[0103] DSP 800 can be a TI TMS 320C80. This device includes anassociated transfer controller which is a combined memory controller andDMA (direct memory access) machine. It handles the movement of data andinstructions within the system as required by the master processor,parallel processors, video controller, and external devices.

[0104] The transfer controller performs the following data-movement andmemory-control functions:

[0105] MP and ADSP instruction-cache fills

[0106] MP data-cache fills and dirty-block write-back

[0107] MP and ADSP packet transfers (PTs)

[0108] Externally initiated packet transfers (XPTs)

[0109] VC packet transfers (VCPTs)

[0110] MP and ADSP direct external accesses (DEAs)

[0111] VC shift-register-transfer (SRTs)

[0112] DRAM refresh

[0113] External bus requests

[0114] Operations are performed on the cache sub-block as requested bythe processors' internal cache controllers. DEA operations transferoff-chip data directly to or from processor registers. Packet transfersare the main data transfer operations and provide an extremely flexiblemethod for moving multidimensional blocks of data (packets) betweenon-chip and/or off-chip memory.

[0115] Key features of this specific transfer controller include:

[0116] Crossbar interface,

[0117] 64-bit data path,

[0118] Single-cycle access,

[0119] External memory interface,

[0120] 4G-byte address range dynamically configurable memory cycles,

[0121] Bus size of 8, 16, 32, or 64 bits,

[0122] Selectable memory page size,

[0123] Selectable row/column address multiplexing,

[0124] Selectable cycle timing,

[0125] Big or little endian operation Cache, VRAM, and refreshcontroller,

[0126] Programmable refresh rate,

[0127] VRAM block-write support,

[0128] Independent source and destination addressing,

[0129] Autonomous address generation based on packet transferparameters;

[0130] Data can be read and written at different rates

[0131] Numerous data merging and spreading functions can be performedduring transfers; and

[0132] Intelligent request prioritization

[0133] Hence, the transfer controller allows definition of the limits ofthe message/data. Then, the information can be automatically handled.The transfer controller can also generate a table of end points, carryout direct-memory access, and manipulate the data while transferring thedata.

[0134] The SDRAM 822 can be used as fast-image memory, and can beconnected, for example, to an image storage memory 830. The FPGA canalso be configured to include serial interfaces 824, 826 with theirassociated RAM 828, 829 respectively. Other hardware components also canbe configured by the FPGA.

[0135] Since the FPGA can be reconfigured under control of the digitalsignal processor 800, the FPGA can be reconfigured dynamically to set anappropriate amount of SDRAM 822. For example, if a larger image or imageprocessing area is necessary, the FPGA can be reconfigured to make moreof its area into image memory. If a smaller image is desired, less ofthe FPGA can be made into SDRAM, allowing more of the FGPA for otherhardware functions. Moreover, the interfaces 832, 834 can be dynamicallyreconfigured. For example, the baud rate can be changed, bus width canbe reconfigured, and the like.

[0136] The video controller and line buffer 1114 can also be formed fromthe field-programmable gate array.

[0137] The serial receiver 824 receives the lamp data from thecontroller, as described in our copending application, 7319/63. Theserial driver 826 produces a serial output that can drive, for example,an RS422 bus that runs the motors.

[0138] The C80 DSP includes the transfer controller as a part thereof.

[0139] An alternative embodiment uses a different DSP. The functions ofthe transfer controller are then replicated in the FPGA, as desired. Forexample, an alternative possible DSP is the C6201 which uses the VeryLarge Instruction Word “VLIW” architecture. This system can use, forexample, 128-bit instructions. However, since this is connected to the32-bit data bus, a transfer controller could be highly advantageous.This would enable the equivalent of direct memory access from thememory. FIG. 11 shows the gate array schematic of this alternateembodiment in which the transfer controller is part of the FPGA.

[0140] A second embodiment of the gate array logic, as arrangedaccording to the present system, is shown in FIG. 11. This gate arraylogic is formed in the field-programmable gate array 820 to carry outmany of the functions described herein. Block 1100 corresponds to atransparency device which calculates values associated withtransparency.

[0141] Block 1102 is a dual-port RAM which receives the VLIW at one portthereof, and outputs that value to a multiplexer 1104, which outputs itas a 32 bit signal used by the CPU/DSP.

[0142] Transfer controller 1106 has the functionality discussed above.It is controlled directly by the CPU data received on line 1105. Thetransfer controller can have two lists of parameters, each 64 bits inwidth. These values are received on the list receivers 1110, 1112.

[0143] Another issue noted by the current inventors is the size ofimages. If possible, it is desirable to avoid using uncompressed images.For example, one simple form image to manipulate is a bitmap, also knownas a “.bmp” type image. The bitmap represents each pixel of the image bya number of bits, e.g., for an 8-bit 3-primary color image, each pixelwould require 24 bits. This can, unfortunately, use incredible amountsof storage. However, since the bit map has a 1-to-1 correspondence withthe image, it can be relatively easy to manipulate the bit map. Forexample, a matrix representing the bitmap can be easily manipulated,e.g., rotated. The image form can be compressed, e.g., to a GIF or JPEGimage. This compressed image, however, loses the one-to-onecorrespondence and hence cannot be directly processed as easily.

[0144] One aspect of the present system is to store the image as acompressed image, and most preferably as polygons. The software package,Adobe Streamline (TM), breaks a bitmap into multiple polygons. Thepolygons can then be defined as vectors. An additional advantage is thatthe vectors can be easily processed by the DSP. The DSP 800 then buildsthe image from the vectors. Since the image is defined as vectors, itcan be easily handled via matrix arithmetic. Using Adobe Streamline, forexample, an 800 kilobyte bit map can be compressed to a 30 kilobytevector image.

[0145] Another improvement of the present system is the control of thegobo using filters.

[0146] In an analog gobo system, a filter can be used to blur the imagerepresenting the gobo, for example. Many different kinds of filters areused. For example, some filters randomly distort the image. Otherfilters affect the image in different ways. The blurring can be carriedout as an electronic filter. A preferred user interface defines thefilter as a separate gobo that is multiplied, e.g., AND ed, or OR edwith the first gobo.

[0147] More generally, a filter can be used to alter the image in someway, e.g., scale the image, decay the image, or the like. The blur canbe used to make the image apparently out of focus in some locations.

[0148] The filter uses a second gobo that simulates the effect of ananalog filter. For example, one operation simulates the optical effectof the glass that forms the filter in an analog gobo. That glass is usedto make a model that emulates the optical properties of the glass. Thoseoptical properties are then manipulated through the matrix representingthe gobo, thereby effecting a digital representation of the filter. Inone aspect, the filter is considered as a separate gobo which is OR edwith the second gobo. In this case, the dual gobo definition describedabove can be used. Alternatively, the filter can simply be added to thegobo-defining matrix.

[0149] This definition has the advantage that it avoids defining atotally separate control. The filters are each defined as one specificgobo. A user manual which defines gobos is used. This manual has filtersadded to it. This avoids the need for a separator user manual offilters.

[0150] Another aspect defined by the present system is gobos that loadand execute code. Some images cannot be described in terms of control.For example, images may be defined as some random input. Some imagesprogress with time and maintain no record of their previous state. Theseimages can be defined in terms of code and in terms of a progressionfrom one time to another. Hence, the gobos that load and execute codedefine a gobo that includes an associated area to hold static values.

[0151] A gobo is requested. The code and variables that are associatedwith that gobo are copied into RAM. The variables are initially at apreset state. The code that is in the gobo portion is executed, usingthe portions in the variables. The variables are modified at each passthrough the portion.

[0152] Yet another feature of this system is intensity control overaspects of the image defining the gobo and dimming of the image definedthereby. Returning to the example of a bit map with 24-bit color, such asystem would include 8 bits of red, 8 bits of green, and 8 bits of blue.It can be desirable to fade the image while keeping the color constantwith intensity change.

[0153] One system uses an experimental technique i.e. that is one thatrelies on experimentation, to determine how to fade in order to maintainconstant color. A look-up table is formed between the constant color andthe look up table. In this way value B_(X), G_(X), B_(X) representscolor 1 at intensity X. Ry, Gy, By represent the color at intensity y.

[0154] Another system directly maps the bits to color by defining themap as chrominance using techniques from color television. For example,this takes the bits, and converts the values indicating image to coloror chrominance (C) and image luminance (Y) of the image. The conversionbetween RGB and Y/C is well known. The values of Y and C whichcorrespond to the chrominance and luminance are then stored. The imagegobo can then be dimmed by reducing the Y, while keeping C the same. Ifdesired, the Y/C can be converted back to RGB after dimming. The dimminghowever, may change the “look” of the color being projected. This systemallows the color to be changed based on intensity.

[0155] Another system allows reducing the number of bits for a bitmap.Say, as an example, that it is desired to use a total of 8 bits torepresent each pixel of the image. This could then be apportionedbetween the desired bits with red having 3 bits, green having 3 bits,and blue having 2 bits. This limits the amount of information in any ofthese colors. Since there are only 2 bits for blue, there are only fourlevels of blue that can be selected. This is often insufficient.

[0156] In this system, therefore, the bits are compressed by assumingthat each two adjacent lines have exactly the same values. Hence, eachtwo lines get the same color value (but can have different intensityvalues). Now in a system as described above, two lines of red can have 5bits, two lines of green can have 6 bits, and two lines of blue can alsohave 5 bits. This provides an appropriate dynamic range for color at theexpense of losing half the resolution for color.

[0157] Moreover, this has an additional advantage in that it allows 5bits for grey scale in such a system.

[0158] A possible problem with such a system, however, as describedabove, is that the information would not necessarily be aligned on byteboundaries. It could, therefore, be necessary to take the whole image,manipulate it, and then put the whole image back.

[0159] The basic system is shown in FIG. 9. The luminance Y is an 8-bitrepresentation of the brightness level of the image. The hue is thendivided into dual-line multiple bits. Each value is used for two lineseach.

[0160] Dimming in such a system is carried out as shown in FIG. 9. Forexample, the blue bits 900 are multiplied in a hardware multiplier 902by the luminance. Similarly, the green is multiplied in a secondhardware multiplier 904 by the same luminance value. This controls therelative levels of red, green, and blue that are output on the RGB lines910.

[0161] The multipliers that are used are very simple, since they simplymultiply 8 bits by 3 bits. Therefore, a relatively simple in structurehardware multiplier can be used for this function.

[0162] This provides red, green, and blue color without loss of data andwith substantially perfect fading.

[0163] An additional feature described herein is a framing shutter gobo.A basic framing shutter is shown in FIG. 10. FIG. 10 shows the circularspot of the beam, and the analog shutter, often called a LECO. Eachanalog shutter 1000 can be moved in and out in the direction of thearrows shown. Each shutter can also be moved in an angular direction,shown by the arrow 1002. There are a total of four shutters, which, incombination, enable framing the beam to a desired shape. For example,the shutter 1004 can be moved to the position shown in dotted lines as1006. When this happens, the effective image that is passed becomes asshown in hatched lines in FIG. 10. Another possibility is that theshutter can be tilted to put a notch or nose into the window around theimage.

[0164] According to this system, a record is formed for a gobo defininga framing shutter. The framing shutter gobo allows control of multiplevalues including the positions of the four framing shutter edges 1000,1004, 1006, and 1008. Each framing shutter is defined in terms of itsvalue d, corresponding to the distance between one edge 1010 of theframing shutter and the edge 1011 of the original spot. In this system,the value d is shown representing the right-hand edge of the framingshutter. Another selectable value is θ, which defines the angle that thefront blade 1013 of the framing shutter makes relative to perfecthorizontal or vertical. Yet another parameter which can be selected isoffset ∘ which represents the distance between the framing shutter edge1010 and the ideal edge portion 1017. Other values can alternatively bespecified. By controlling all these values, the Medusa shutter can ineffect simulate any desired framing shutter by using an electronic gobo.

[0165] A number of different special gobos are defined according to thepresent system. Each of these gobos is defined according to the recordformat described above.

[0166] These include:

[0167] Oscilloscope. This enables simulating the output value of anoscilloscope as the gobo. For example, any value that can be displayedon the oscilloscope could be used as a gobo with a finite width. Thiscould include sine waves, square waves, straight waves, sawtooth waves,and the like.

[0168] Other variable gobos include vertical lines, moire lines, laserdots, radial lines, concentric circles, geometric spiral, bar code, moonphases, flowers and rotating flowers, a diamond tiling within a shape,kaleidoscope, tunnel vision, and others.

[0169] Animated gobos correspond to those which execute codes describedabove. Some examples of these include, for example, self-animatingrandom clouds; self-animating random reflections; self-animating randomflames, fireworks; randomly moving shapes such as honeycombs,crosswords, or undulations; foam; random flying shapes.

[0170] Although only a few embodiments have been described in detailabove, those having ordinary skill in the art certainly understand thatmodifications are possible.

What is claimed is:
 1. A method of forming a framing shutter using adigital mirror, comprising: defining an angle value and a distancevalue; and controlling a digital mirror to form a part of a framingshutter according to said angle value and said distance value.
 2. Amethod as in claim 1 further comprising defining an offset value.
 3. Amethod as in claim 1 wherein said distance value is a distance from anedge and said angle value represents an angle relative to a specifiedaxis.
 4. A method as in claim 3 wherein said specified axis ishorizontal or vertical.
 5. A method as in claim 2 further comprising aplurality of additional angle values and distance values, collectivelyforming the outside of a framing shutter.
 6. A method of forming aframing shutter using a digital mirror, comprising: using said digitalmirror to simulate edges of the framing shutter having specifieddistances from specified edges and specified angles, which collectivelydefine an outer edge of a frame.
 7. A method as in claim 1, furthercomprising enabling moving portions of the framing shutter.
 8. A methodas in claim 1, wherein said defining comprises defining at least threeadditional angle values and three additional distance values, andwherein said controlling comprises controlling the digital mirror toform a plurality of framing shutter edges, which collectively form awindow around a projected portion, based on said angle values and saiddistance values.
 9. A method as in claim 8, wherein said distance valueis a distance value from a specified edge of the framing shutter.
 10. Amethod as in claim 6, wherein said using comprises defining a recordindicating said specified edges and specified angles.
 11. A method as inclaim 10, wherein said record includes a first value indicating adistance of said specified edges, and a second value indicating an angleof said specified edges relative to a reference.
 12. A method as inclaim 11, wherein said first value comprises a distance between an edgeof the framing shutter and an edge of an original spot that would beformed without the framing shutter.
 13. A method as in claim 11, whereinsaid second value indicates an angle relative to a reference which iseither horizontal or vertical.
 14. A method, comprising: defining arecord which indicates positions of at least one portion of a framingshutter; and using said record to control a digital light reflectiondevice, to form said framing shutter.
 15. A method as in claim 14,wherein said record includes a plurality of portions, each portionrepresenting one side of the framing shutter.
 16. A method as in claim15, wherein each of said plurality of portions include at least aposition value representing a position of the framing shutter, and anangle value representing an angle of the framing shutter.
 17. A methodas in claim 16, wherein said angle value comprises an angle relative toa reference.
 18. A method as in claim 17, wherein said angle is relativeto one of a horizontal or vertical reference.
 19. A method as in claim15, further comprising using said record and said digital lightreflection device to form a shutter that forms a framed area in aspecified way.
 20. A method as in claim 19, wherein said specified wayincludes a window around a displayed image.
 21. A method as in claim 20,wherein said window includes a notch in at least one portion of thewindow, formed by a tilted framing shutter portion.
 22. An apparatus,comprising: a light source; a digital light altering device, which iscontrollable on a pixel basis, to shape a light that is projected fromsaid light source; and a controller for said digital light alteringdevice, said controller controlled according to a control file, and saidcontrol file including at least a plurality of values collectivelyrepresenting an outer window for a shape of a projected light.
 23. Anapparatus as in claim 22, wherein said plurality of values include atleast a plurality of distance values and a plurality of angle values,with each pair of distance value and angle value representing onesegment of the outer window.
 24. An apparatus as in claim 23, whereinsaid distance values each represent a distance from a specified distancereference.
 25. An apparatus as in claim 23, wherein said angle valueseach represent an angle relative to a specified angle reference.
 26. Anapparatus as in claim 23, wherein said angle values each represent anangle relative to a specified angle reference.
 27. An apparatus as inclaim 26, wherein said control file defines edges of a simulated framingshutter which edges collectively form a window around a projectedportion.
 28. An apparatus as in claim 22, wherein said digital lightshape altering device is also used to change a characteristic of a beamportion that is generated by the light source and that is within theouter window.
 29. An apparatus as in claim 22, wherein said digitallight shape altering device is a digital mirror device.
 30. An apparatusas in claim 28, wherein said digital light shape altering device is adigital mirror device.
 31. An apparatus as in claim 29, wherein saidcontroller includes a digital signal processor, which operates based onsaid control file.
 32. An apparatus, comprising: a controller, producingan information file which represents outer window portions whichcollectively form a window around a projected light beam.
 33. Anapparatus as in claim 32, wherein said outer window portions are eachdefined according to information representing both position in aprojected light beam and angle in a projected light beam.
 34. Anapparatus as in claim 33, wherein said information file includes bothdistance information indicating said position relative to a reference,and angle information representing an angle relative to said reference.35. An apparatus as in claim 32, wherein said controller includes a userinterface, allowing a user to set portions of said outer window portion.36. An apparatus as in claim 32, wherein said user interface includes atleast a plurality of encoders.
 37. An apparatus as in claim 32, whereinsaid controller includes a connection to a control line, said controlline being connected to at least one remote light unit that produces aprojected light beam based on said information file.
 38. An apparatus asin claim 32, wherein said at least one remote light includes a digitallight shape altering device, which operates responsive to information insaid information file.
 39. An apparatus as in claim 35, wherein saidcontroller also includes, on said user interface, controls allowing auser to set characteristics of a portion of the beam that will be withinsaid window.
 40. An apparatus as in claim 39, wherein saidcharacteristics of said portion of the beam are stored as part of saidinformation file.